local gimtr=require'zdc.gimtr'
module(..., package.seeall)

GimTRTAG=gimtr.MakeInhMT({})
local GimTRTAG_mt = {__metatable={}, __index=GimTRTAG}

function new(mt)
	local repo = gimtr.new(mt or GimTRTAG_mt)
	return repo
end

function GimTRTAG:__tr_to_dpl(dal,tr,id)
	if dal.gimtag then
		local tagdpl=tr.tagdpl
		tagdpl=tagdpl and tagdpl[dal.gimtag]
		if tagdpl then
			return tagdpl
		end
	end
	return tr.v
end

function GimTRTAG:_add_tag_dpl(dal,tag,id,wrap)
	local tr=self.idtr:_query(id)
	if tr then
		local tagdpl=tr.tagdpl
		if not tagdpl then
			tagdpl={}
			tr.tagdpl=tagdpl
		end
		tagdpl[tag]=wrap(dal,tag,id,tr.v)
		return tagdpl
	end
end
